package 二叉树;

import Utils.TreeNode;

/**
 * @author: TTDB
 * @create: 2025/9/17
 */
public class isValidBST {
    public boolean isValidBST(TreeNode root) {
        //判定当前树是不是二叉搜索树，需要左子树右子树严格小于当前节点，所以我们需要传递当前节点值
        return dfs(root, Long.MIN_VALUE, Long.MAX_VALUE);
    }
    public boolean dfs(TreeNode root, long left, long right) {
        if (root == null) return true;
        if (root.val <= left || root.val >= right) return false;
        return dfs(root.left, left, root.val) && dfs(root.right, root.val, right);
    }
}
